package com.dyz.wsw.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 授权切面用注解,被该注解标注后会做权限校验，接收一个权限字符
 * 特别注意:使用该注解时，需要在Controller层的方法上，手动添加ServerWebExchange
 * 如:
 * ---@Auth("xxx")
 * ---public Object xxxController(ServerWebExchange exchange){}
 * 以便让切面逻辑能获取到本次连接对象,虽然这样做有一定侵入性，但可以有效避免异步环境下数据混乱问题。
 * @author dyz
 * @date 2025/1/13 13:14
 */
//可标注在方法上
@Target(ElementType.METHOD)
//运行时可以被读取
@Retention(RetentionPolicy.RUNTIME)
public @interface Auth {

    String value() default "";

}
